package com.mindskip.xzs.repository;

import com.mindskip.xzs.domain.ExamPaperQuestionCustomerAnswer;
import com.mindskip.xzs.domain.other.ExamPaperAnswerUpdate;
import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface ExamPaperQuestionCustomerAnswerMapper extends BaseMapper<ExamPaperQuestionCustomerAnswer> {

    // 根据试卷答案ID查询学生答题情况列表
    List<ExamPaperQuestionCustomerAnswer> selectListByPaperAnswerId(Integer id);

    // 学生答题情况分页查询
    List<ExamPaperQuestionCustomerAnswer> studentPage(QuestionPageStudentRequestVM requestVM);

    // 批量插入学生答题情况
    int insertList(List<ExamPaperQuestionCustomerAnswer> list);

    // 查询所有学生答题情况数量
    Integer selectAllCount();

    // 根据时间范围查询学生答题情况数量，返回KeyValue对象列表
    List<KeyValue> selectCountByDate(@Param("startTime") Date startTime, @Param("endTime") Date endTime);

    // 更新学生答题情况的得分
    int updateScore(List<ExamPaperAnswerUpdate> examPaperAnswerUpdates);
}
